// If we have a lib with a path, we're done
// If we have a lib with no path, use the inferred lib or_else package name
- let lib = if self.lib.is_none() || self.lib.get_ref().is_empty() {
- inferred_lib_target(project.name.as_slice(), layout)
- } else {
- self.lib.get_ref().iter().map(|t| {
- if layout.lib.is_some() && t.path.is_none() {
- TomlTarget {
- path: layout.lib.as_ref().map(|p| TomlPath(p.clone())),
- .. t.clone()
- }
- } else {
- t.clone()
+ let mut used_deprecated_lib = false;
+ let lib = match self.lib {
+ Some(ref libs) => {
+ match *libs {
+ Many(..) => used_deprecated_lib = true,
+ _ => {}
}
- }).collect()
+ libs.as_slice().iter().map(|t| {
+ if layout.lib.is_some() && t.path.is_none() {
+ TomlTarget {
+ path: layout.lib.as_ref().map(|p| TomlPath(p.clone())),
+ .. t.clone()
+ }
+ } else {
+ t.clone()
+ }
+ }).collect()
+ }
+ None => inferred_lib_target(project.name.as_slice(), layout),
};
- let bins = if self.bin.is_none() || self.bin.get_ref().is_empty() {
- inferred_bin_targets(project.name.as_slice(), layout)
- } else {
- let bin = layout.main();
+ let bins = match self.bin {
+ Some(ref bins) => {
+ let bin = layout.main();
- self.bin.get_ref().iter().map(|t| {
- if bin.is_some() && t.path.is_none() {
- TomlTarget {
- path: bin.as_ref().map(|&p| TomlPath(p.clone())),
- .. t.clone()
+ bins.iter().map(|t| {
+ if bin.is_some() && t.path.is_none() {
+ TomlTarget {
+ path: bin.as_ref().map(|&p| TomlPath(p.clone())),
+ .. t.clone()
+ }
+ } else {
+ t.clone()
}
- } else {
- t.clone()
- }
- }).collect()
+ }).collect()
+ }
+ None => inferred_bin_targets(project.name.as_slice(), layout)
};
- let examples = if self.example.is_none() || self.example.get_ref().is_empty() {
- inferred_example_targets(layout)
- } else {
- self.example.get_ref().iter().map(|t| t.clone()).collect()
+ let examples = match self.example {
+ Some(ref examples) => examples.clone(),
+ None => inferred_example_targets(layout),
};
- let tests = if self.test.is_none() || self.test.get_ref().is_empty() {
- inferred_test_targets(layout)
- } else {
- self.test.get_ref().iter().map(|t| t.clone()).collect()
+ let tests = match self.test {
+ Some(ref tests) => tests.clone(),
+ None => inferred_test_targets(layout),
};
+ let benches = if self.bench.is_none() || self.bench.get_ref().is_empty() {
+ inferred_bench_targets(layout)
+ } else {
+ self.bench.get_ref().iter().map(|t| t.clone()).collect()
+ };
+
// Get targets
let targets = normalize(lib.as_slice(),
bins.as_slice(),